// 创建用户相关仓库
import { defineStore } from 'pinia'
import { reqLogin } from '@/api/user'
import type { loginForm, loginResponseData} from '@/api/user/type'
import { SET_TOKEN, GET_TOKEN } from '@/utils/token'
import { constantRoute } from '@/router/routes'
let useUserStore = defineStore('User', {
  // 小仓库存储数据地方
  state: () => {
    return {
      // token: localStorage.getItem('TOKEN') // 获取本地存储的token
      token: GET_TOKEN(), // 使用封装方法获取token
      menuRoutes: constantRoute, // 仓库存储生成菜单需要的数组路由
    }
  },
  // 异步|逻辑地方
  actions: {
    // 用户登录方法
    async userLogin(data:loginForm) {
      // console.log(data)
      // 登录请求
      let result:loginResponseData = await reqLogin(data)
      console.log(result)
      if (result.code == 200) {
        this.token = result.data.token
        // localStorage.setItem('TOKEN', result.data.token) // 存储token
        SET_TOKEN((result.data.token as string)) // 使用封装方法存储token
        return result
      } else {
        return result.data.message
      }
    }
  },
  getters: {

  }
})

// 对外暴露获取小仓库方法
export default useUserStore